package com.myacg.core.task;

public abstract class Task {
	   String   id; //唯一标识本任务的状态码；
	   long  initSecond; //初始时间
	   long  howSecond;//多久触发一次为1毫秒的倍速
	   
	   //启动与暂停
	   private boolean ispause;
	   
	   
	   /**
	    * 倒计时任务组件， 搭配CountDownTaskManage使用 。 
	    * @param initSecond  需为1000的倍数
	    */
	   protected Task(long  initSecond){
		   this(initSecond, 1000);
	   }
	   
	   protected Task(long  initSecond,long howSecond){
		   this.initSecond=initSecond;
		   this.howSecond=howSecond;
	   }
	   
	   
		
		/**
		 * 被线程执行的方法
		 */
		public void  excute(){
			if(!ispause){
				this.secondExecute();
			}
		}
		
	   /*
	    * 间隔执行的方法
	    */
	   public abstract void secondExecute();
	   /**
	    * 终结时 
	    * 给定计时结束时调用的方法
	    */
	   public abstract void overExecute();
	   
	   
	   //继续任务
	   public void continueSelf(){
		   System.out.println("继续");
			ispause=false;
		}
	   //暂停任务
		public void pauseSelf(){
			System.out.println("暂停");
			ispause=true;
		}
	   
	   public String getId() {
			return id;
		}
		public void setInitSecond(int initSecond) {
			this.initSecond = initSecond;
		}
		
		
		public void setHowSecond(int howSecond) {
			this.howSecond = howSecond;
		}

		public long getInitSecond() {
			return initSecond;
		}

		public void setInitSecond(long initSecond) {
			this.initSecond = initSecond;
		}

		public long getHowSecond() {
			return howSecond;
		}

		public void setHowSecond(long howSecond) {
			this.howSecond = howSecond;
		}
	   
}
